print("haha-qs-nq插件，版本：0.0.1.20250427")

local wowWatcher = CreateFrame("Frame", "BlueSquareFrame", UIParent);-- 创建一个新的框架
wowWatcher:SetFrameLevel(1);-- 设置框架的层级
wowWatcher:SetSize(42, 5) -- 宽度和高度都是100像素 -- 设置框架的尺寸
wowWatcher:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 0, 0) -- 距离屏幕左上角10,-10的位置 -- 设置框架的位置

local colorSize = 5;

-- 1-1 水之护盾，绿色为需要上，红色为不需要上
-- 1-2 自动水之护盾开关

-- 1-1 水之护盾，绿色为需要上，红色为不需要上
local szhd_wl_green = wowWatcher:CreateTexture(nil, "BACKGROUND")
szhd_wl_green:SetColorTexture(0, 1, 0, 1)
szhd_wl_green:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 0, 0); -- 使纹理填充整个框架
szhd_wl_green:SetSize(colorSize, colorSize);
szhd_wl_green:SetAlpha(0);
-- 蓝色纹理，当没有邪甲术的时候就是红色的纹理
local szhd_wl_red = wowWatcher:CreateTexture(nil, "BACKGROUND")--创建纹理
szhd_wl_red:SetColorTexture(1, 0, 0, 1)
szhd_wl_red:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 0, 0);--设置框架相对锚点
szhd_wl_red:SetSize(colorSize, colorSize)
szhd_wl_red:SetAlpha(1)

-- 间隔纹理
local splitTexture1 = wowWatcher:CreateTexture(nil, "BACKGROUND")
splitTexture1:SetColorTexture(0.5, 0.5, 0.5, 1)
splitTexture1:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 5, 0); -- 使纹理填充整个框架
splitTexture1:SetSize(1, colorSize);
splitTexture1:SetAlpha(1);

-- 1-2 自动水之护盾开关
local szhd_switch_wl_green = wowWatcher:CreateTexture(nil, "BACKGROUND")
szhd_switch_wl_green:SetColorTexture(0, 1, 0, 1)
szhd_switch_wl_green:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 6, 0); -- 使纹理填充整个框架
szhd_switch_wl_green:SetSize(colorSize, colorSize);
szhd_switch_wl_green:SetAlpha(0);

local szhd_switch_wl_red = wowWatcher:CreateTexture(nil, "BACKGROUND")--创建纹理
szhd_switch_wl_red:SetColorTexture(1, 0, 0, 1)
szhd_switch_wl_red:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 6, 0);--设置框架相对锚点
szhd_switch_wl_red:SetSize(colorSize, colorSize)
szhd_switch_wl_red:SetAlpha(1)

-- 间隔纹理
local splitTexture2 = wowWatcher:CreateTexture(nil, "BACKGROUND")
splitTexture2:SetColorTexture(0.5, 0.5, 0.5, 1)
splitTexture2:SetPoint("TOPLEFT", wowWatcher, "TOPLEFT", 11, 0); -- 使纹理填充整个框架
splitTexture2:SetSize(1, colorSize);
splitTexture2:SetAlpha(1);

-- 创建水之护盾开关按钮 --
local szhdButton = CreateFrame("Button", nil, UIParent) -- 创建按钮框架
szhdButton:SetSize(30, 30) -- 设置按钮大小
szhdButton:SetPoint("TOP", UIParent, "CENTER", 0, -50) -- 定位到屏幕中心下方
szhdButton:RegisterForClicks("AnyUp") -- 注册接受所有点击事件

-- 创建按钮纹理 --
local szhdIcon = szhdButton:CreateTexture(nil, "BACKGROUND") -- 创建纹理对象
szhdIcon:SetAllPoints() -- 纹理填满整个按钮
szhdIcon:SetTexture("Interface\\Icons\\Spell_Frost_FrostWard") -- 设置水之护盾图标
szhdIcon:SetAlpha(0.5) -- 初始半透明状态

-- 创建开关状态变量 --
local szhdEnabled = false -- 开关状态变量（默认关闭）

-- 点击事件处理 --
szhdButton:SetScript("OnClick", function(self, button)
    szhdEnabled = not szhdEnabled -- 切换开关状态
    PlaySound(szhdEnabled and 856 or 857) -- 播放音效（开启：856，关闭：857）

    -- 更新图标显示状态
    if szhdEnabled then
        szhdIcon:SetAlpha(1) -- 完全可见
        szhdIcon:SetDesaturated(false) -- 正常颜色
        szhd_switch_wl_red:SetAlpha(0);
        szhd_switch_wl_green:SetAlpha(1);
    else
        szhdIcon:SetAlpha(0.5) -- 半透明
        szhdIcon:SetDesaturated(true) -- 去饱和度（黑白效果）
        szhd_switch_wl_red:SetAlpha(1);
        szhd_switch_wl_green:SetAlpha(0);
    end
end)

-- 鼠标提示 --
szhdButton:SetScript("OnEnter", function(self)
    GameTooltip:SetOwner(self, "ANCHOR_RIGHT") -- 设置提示框位置
    GameTooltip:AddLine("水之护盾自动施放") -- 标题
    GameTooltip:AddLine("状态："..(szhdEnabled and "|cFF00FF00开启|r" or "|cFFFF0000关闭|r"), 1,1,1) -- 状态显示
    GameTooltip:AddLine("点击切换开关", 0.6,0.6,0.6) -- 操作提示
    GameTooltip:Show() -- 显示提示框
end)

szhdButton:SetScript("OnLeave", function()
    GameTooltip:Hide() -- 隐藏提示框
end)

function checkSzhd()
    local name, _, _, _, _, expirationTime = AuraUtil.FindAuraByName("水之护盾", "player", "PLAYER|HELPFUL")
    if name then
        szhd_wl_red:SetAlpha(1);
        szhd_wl_green:SetAlpha(0);
    else
        szhd_wl_red:SetAlpha(0);
        szhd_wl_green:SetAlpha(1);
    end
end

-- 事件区
wowWatcher:SetScript("OnUpdate", function()
    checkSzhd();
end);
